home *** CD-ROM | disk | FTP | other *** search
- // Copyright 2001 Macromedia, Inc. All rights reserved.
- var DEBUG = false
- var command_filename = "SP_D.gif"
- var command_rs_filename = "RS_D.gif"
- var datasourceleaf_filename = "DSL_D.gif"
- var recordset_filename = "RS_D.gif"
-
-
- function addDynamicSource()
- {
- dw.popupServerBehavior("CFStoredProc.htm");
- }
-
-
- function findDynamicSources()
- {
- var DSL = new Array();
- var currentdom = dreamweaver.getDocumentDOM();
-
- if (!currentdom)
- {
- return DSL
- }
-
- var nodes = currentdom.getElementsByTagName("CFSTOREDPROC")
- for (var index =0 ; index < nodes.length ; index++)
- {
- var node = nodes[index]
- ssRec = findSSrec(node,"cfstoredproc");
-
- if (ssRec)
- {
- if (ssRec.resultNode)
- {
- DSL[DSL.length] = new ObjectInfo(ssRec.title, command_filename, true, "Recordset.htm",ssRec.resultsetName)
- }
- else
- {
- DSL[DSL.length] = new ObjectInfo(ssRec.title, command_filename, true, "CFSTOREDPROC.htm","")
- }
- }
- }
-
- return DSL;
- }
-
- ////////////////////////////////////////////////////////////////////////////////
- // Function: generateDynamicSourceBindings()
- //
- // Returns a list of bindings for elementNode on the page.
- ////////////////////////////////////////////////////////////////////////////////
- function generateDynamicSourceBindings(elementName)
- {
- var BindingsArray = new Array();
- var outArray;
-
-
- ssRec = findSSrecByTitle(elementName,"cfstoredproc")
-
- if (ssRec) {
- elementNode = ssRec.selectedNode;
- } else {
- elementNode = findSourceNode(elementName);
- }
-
- var rsDom = dreamweaver.getDocumentDOM(dreamweaver.getConfigurationPath() + "/ServerBehaviors/UD4-ColdFusion/CFSTOREDPROC.htm")
- if(elementNode && (elementNode.tagName == "CFSTOREDPROC"))
- {
- var spName = GetSPName(elementNode);
- CachedParametersArray = getCachedParametersArray(spName);
-
- if (CachedParametersArray .length)
- {
- //we use +3 since our Parameter has name,type,direction
- for (var j=0; j < CachedParametersArray .length ; j+=3)
- {
- var dir = CachedParametersArray[j+1];
- if (dir == 4 || dir == 2 || dir == 3)
- {
- var paramName = StripChars("@", CachedParametersArray[j]);
- BindingsArray.push(paramName);
- }
- }
- }
- else
- {
- BindingsArray = rsDom.parentWindow.getDynamicBindings(elementNode)
- var ss = findSSrec(elementNode, "cfstoredproc")
- if (ss)
- {
- var CachedParameterString = MMDB.getSPParamsAsString(ss.connectionName,ss.procedure);
- SaveParametersForCache(spName,CachedParameterString);
- }
- }
-
- var rnode = GetRecordsetNodeForCommand(elementNode)
- if (rnode)
- {
- CachedCTArray = getCachedColumnAndTypeArray(rnode.getAttribute("NAME"));
- if (CachedCTArray.length)
- {
- for (var j=0; j < CachedCTArray.length ; j+=2)
- {
- BindingsArray.push(rnode.getAttribute("NAME") + "." + CachedCTArray[j]);
- }
- }
- else
- {
- var colArray = new Array();
- colArray = rsDom.parentWindow.getDynamicBindings(rnode)
- SaveColumnAndTypeArrayForCache(rnode.getAttribute("NAME"),colArray);
- for (var cvar=0;cvar < colArray.length ;cvar+=2)
- {
- BindingsArray.push(rnode.getAttribute("NAME") + "." + colArray[cvar]);
- }
- }
-
- BindingsArray.push(rnode.getAttribute("NAME") + "."+ MM.LABEL_FirstRecordIndex);
- BindingsArray.push(rnode.getAttribute("NAME") + "."+ MM.LABEL_LastRecordIndex);
- BindingsArray.push(rnode.getAttribute("NAME") + "."+ MM.LABEL_TotalRecordIndex);
- }
-
- outArray = GenerateObjectInfoForSourceBindings(BindingsArray, datasourceleaf_filename, "CFSTOREDPROC")
- }
- else if(elementNode && (elementNode.tagName == "CFPROCRESULT"))
- {
- CachedCTArray = getCachedColumnAndTypeArray(elementNode.getAttribute("NAME"));
- if (CachedCTArray.length)
- {
- for (var j=0; j < CachedCTArray.length ; j+=2)
- {
- BindingsArray.push(CachedCTArray[j]);
- }
- }
- else
- {
- var colArray = new Array();
- colArray = rsDom.parentWindow.getDynamicBindings(elementNode)
- SaveColumnAndTypeArrayForCache(elementNode.getAttribute("NAME"),colArray);
- for (var cvar=0;cvar < colArray.length ;cvar+=2)
- {
- BindingsArray.push(colArray[cvar]);
- }
- }
-
- BindingsArray.push(MM.LABEL_FirstRecordIndex);
- BindingsArray.push(MM.LABEL_LastRecordIndex);
- BindingsArray.push(MM.LABEL_TotalRecordIndex);
- outArray = GenerateObjectInfoForSourceBindings(BindingsArray, datasourceleaf_filename, "CFSTOREDPROC")
- }
-
- return outArray;
- }
-
-
-
-
- ////////////////////////////////////////////////////////////////////////////////
- //
- // Function: generateDynamicDataRef
- //
- // Returns a dynamic binding string.
- ////////////////////////////////////////////////////////////////////////////////
- function generateDynamicDataRef(elementName,bindingName)
- {
- var retStr="";
-
- var tokenindex = bindingName.indexOf(".");
- if (tokenindex != -1)
- {
- elementName = bindingName.substring(0,tokenindex);
- bindingName = bindingName.substring(tokenindex+1);
- }
-
- ssRec = findSSrecByTitle(elementName,"cfstoredproc")
- if (ssRec)
- {
- elementNode = ssRec.selectedNode;
- }
- else
- {
- elementNode = findSourceNode(elementName);
- }
-
- if (elementNode && elementNode.tagName == "CFPROCRESULT")
- {
- if ((bindingName == MM.LABEL_FirstRecordIndex) || (bindingName == MM.LABEL_LastRecordIndex) || (bindingName == MM.LABEL_TotalRecordIndex))
- {
- // Recordset statistics. These are useful when the page
- // is being used for navigation through a large set of records.
- // Typically you add some text to the page that says something
- // like:
- // Records 10 to 15 of 63
- // where 10 corresponds to [first record index]
- // 15 corresponds [last record index]
- // 63 corresponds [total records]
-
- if (bindingName == MM.LABEL_FirstRecordIndex)
- {
- retStr = "<cfoutput>#" + elementName + "_first" + "#</cfoutput>";
- }
- else if (bindingName == MM.LABEL_LastRecordIndex)
- {
- retStr = "<cfoutput>#" + elementName + "_last" + "#</cfoutput>";
- }
- else if (bindingName == MM.LABEL_TotalRecordIndex)
- {
- retStr = "<cfoutput>#" + elementName + "_total" + "#</cfoutput>";
- }
- }
- else
- {
- retStr = "<cfoutput>#" + elementName + "." + bindingName + "#</cfoutput>"
- }
- }
- else if(elementNode && (elementNode.tagName == "CFSTOREDPROC"))
- {
- if (bindingName == "RETURN_VALUE")
- {
- retStr = "<cfoutput>#" + GetSPName(elementNode) + "__RETURN_VALUE#</cfoutput>"
- }
- else
- {
- retStr = "<cfoutput>#" + GetSPName(elementNode) + "__" + bindingName + "#</cfoutput>"
- }
- }
-
- retStr = stripCfoutputIfNested(retStr);
- return retStr;
- }
-
-
- ////////////////////////////////////////////////////////////////////////////////
- //
- // Function: inspectDynamicDataRef
- //
- // Inspects a dynamic binding string and returns a pair of source and binding.
- ////////////////////////////////////////////////////////////////////////////////
- function inspectDynamicDataRef(expression)
- {
- var retArray = new Array();
- if(expression.length)
- {
- var exprIndex = expression.indexOf("#");
- if (exprIndex != -1)
- {
- // No need to search the string prior to the "<cfoutput>"
- expression = "<cfoutput>"+expression.substr(exprIndex)+"</cfoutput>";
-
- var TranslatorDOM = dreamweaver.getDocumentDOM(dreamweaver.getConfigurationPath() + "/Translators/UD4-ColdFusion.htm");
- if (TranslatorDOM)
- {
- TranslatedStr = TranslatorDOM.parentWindow.miniTranslateMarkup("", "", expression, false);
- if (TranslatedStr.length)
- {
- var found = TranslatedStr.search(/mm_dynamic_content\s+source=(\w+)\s+binding="([^"]+)"/ig)
- if (found != -1)
- {
- var elementname = RegExp.$1;
- var bindingname = RegExp.$2;
- //map the name to node
- elementNode = findSourceNode(elementname);
- if (elementNode)
- {
- if (elementNode.tagName == "CFPROCRESULT")
- {
- ///map the node to SSRec to get the title.
- parentNode = elementNode.parentNode;
- ssRec = findSSrec(parentNode,"cfstoredproc");
- }
- else
- {
- ssRec = findSSrec(elementNode,"cfstoredproc");
- }
-
-
- if (ssRec)
- {
- retArray[0] = ssRec.title;
-
- if (elementNode.tagName == "CFPROCRESULT")
- {
-
- switch (bindingname)
- {
- case "first":
- {
- retArray[1] = elementname + "." + MM.LABEL_FirstRecordIndex;
- break;
- }
- case "last":
- {
- retArray[1] = elementname + "." + MM.LABEL_LastRecordIndex;
- break;
- }
- case "total":
- {
- retArray[1] = elementname + "." + MM.LABEL_TotalRecordIndex;
- break;
- }
- default:
- {
- retArray[1] = elementname + "." + bindingname;
- break;
- }
- }
-
- }
- else
- {
- retArray[1] = bindingname;
- }
- }
- }
- }
- //alert("source=" + retArray[0] + " binding=" + retArray[1])
- }
- }
- }
- }
- return retArray;
- }
-
-
-
- ////////////////////////////////////////////////////////////////////////////////
- //
- // Function: deleteDynamicSource
- //
- // Deletes a dynamic source from the document.
- ////////////////////////////////////////////////////////////////////////////////
- function deleteDynamicSource(sourceName,bindingName)
- {
- ssRec = findSSrecByTitle(sourceName,"cfstoredproc")
-
- if (ssRec) {
- elementNode = ssRec.selectedNode;
- var dom = dw.getDocumentDOM();
- if (elementNode) {
- if (!bindingName)
- {
- dw.serverBehaviorInspector.deleteServerBehavior(ssRec);
- }
- else
- {
- alert(MM.MSG_CantDelColumn);
- }
- }
- }
- }
-
-